import logging
import os
import time
from logging.handlers import TimedRotatingFileHandler
from static import PROJECT_PATH

LOG_PATH = os.path.join(PROJECT_PATH, 'config', 'log_config', 'time_logs')


def get_TimedRotatingFileHandler():
    # 定义日志输出格式
    fmt_str = '%(asctime)s[level-%(levelname)s][%(name)s]:%(message)s'
    # 初始化
    logging.basicConfig()
    # 创建TimedRotatingFileHandler处理对象
    # 间隔5(S)创建新的名称为myLog%Y%m%d_%H%M%S.log的文件，并一直占用myLog文件。
    log_dir = LOG_PATH
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)
    time_file_handler = logging.handlers.TimedRotatingFileHandler(os.path.join(log_dir, 'info'), when='D', interval=1, backupCount=3)
    # 设置日志文件后缀，以当前时间作为日志文件后缀名。
    time_file_handler.suffix = "%Y-%m-%d.log"
    # 设置日志输出级别和格式
    time_file_handler.setLevel(logging.INFO)
    formatter = logging.Formatter(fmt_str)
    time_file_handler.setFormatter(formatter)
    logger = logging.getLogger()
    # 添加到日志处理对象集合
    logger.addHandler(time_file_handler)
    return logger


if __name__ == "__main__":
    logger = get_TimedRotatingFileHandler()
    count = 5
    while count > 0:
        logger.error('测试test_TimedRotatingFileHandler')
        time.sleep(1)
        count -= 1
